<?php
namespace app\admin\model;
use think\Db;

class MenuManage extends Db
{

	//数据库字段配对
	public function fieldMatch($data)
	{
		$resData = [];

		isset($data['menu_name'])    && $resData['name']     = $data['menu_name'];   //菜单名称
		isset($data['menu_type'])    && $resData['type']     = $data['menu_type'];   //菜单类型 1:后台 2:前台
		isset($data['menu_status'])  && $resData['status']   = $data['menu_status']; //菜单状态 1:正常 0:关闭
		isset($data['menu_module'])  && $resData['m']        = $data['menu_module']; //模块名称
		isset($data['menu_control']) && $resData['c']        = $data['menu_control'];//方法名称
		isset($data['menu_action'])  && $resData['a']        = $data['menu_action']; //控制器名称

		return $resData;
	}

	//后台菜单增加
	public function insert($data = array())
	{
		if(!$data || !is_array($data)){
			return 0;
		}

		$insertData = $this->fieldMatch($data);
		return Db::table('menu')->insertGetId($insertData);
	}

	//菜单列表分页
	public function getMenus($condition, $pageSize=10)
	{
		//列表条件
		$condition['status'] = 1;
		//列表总数
		$menuCount = Db::table('menu')->where($condition)->count();
		//菜单列表
		return Db::table('menu')->where($condition)->order('sort', 'DESC')->paginate($pageSize, $menuCount);
	}

	//菜单管理-编辑
	public function editMenu($mid)
	{
		if(!$mid || !is_numeric($mid)){ return []; }
		return Db::table('menu')->where('mid', $mid)->find();
	}

	//菜单管理-保存编辑
	public function updateMenuByMid($mid, $data)
	{
		if(!$mid || !is_numeric($mid)){
			return msg(0, 'ID不合法');
		}

		if(!$data || !is_array($data)){
			return msg(0, '更新数据不合法');
		}

		$update_data = $this->fieldMatch($data);
		return Db::table('menu')->where('mid', $mid)->update($update_data);
	}

	//菜单管理-删除
	public function delMenuByMid($mid)
	{
		if(!$mid || !is_numeric($mid)){
			return msg(0, '删除数据ID不合法');
		}

		return Db::table('menu')->where('mid', $mid)->update(['status'=>0]);
	}

	//菜单管理-排序
	public function listOrderByMid($mid, $val)
	{
		if(!$mid || !is_numeric($mid)){
			return msg(0, 'ID不合法');
		}

		return Db::table('menu')->where('mid', $mid)->update(['sort'=>$val]);
	}

}